
# 列表
"""
说明 ：
    1. 列表是一个有序序列，需要通过下标或索引来获取 ，下标是从0开始。
    2. 列表中可以存放任意的数据类型，没有长度限制
    3. 列表里的元素支持增删改查
    4. 对容器中的元素进行增删改查，都叫可变化对象 。

定义 ：
    变量名 = []    ,在里面可以存放任意数据类型
"""

# 1. 列表的定义
alst = []
blst = [1,23.1,'abc',None,True,[]]
print(alst)
print(blst)


# 2. 查询 : 获取某一个元素 || 遍历所有元素
print("通过下标获取第3个元素:",blst[3])       # 若超出了列表的元素，会报IndexError(索引越界)

# 使用for循环
for x in blst:
    print(x)


# 3. 通过索引修改
blst[3] = 'hello world'
print(blst)

# 4. 列表的方法
"""
list.index(obj)         : 从列表中找出某个元素的位置
list.count(obj)         : 从列表中查找出某个元素出现的次数          
list.insert(index,obj)  : 往列表中某个位置插入一个元素            **
list.append(obj)        : 向列表中插入一个元素                **
list.extend(seq)        : 向该俩表中插入另外一个序列中的数          **
list.pop(index)              : 删除对应索引的元素，若不传，就删除最后一个        **
list.clear()            : 删除所有元素
list.remove(obj)        : 删除列表中的某个元素
list.reverse()          : 列表翻转                          **
list.sort()             ：列表排序                           **
list.copy()             : 列表的拷贝
"""
print("=============")
clst = ['hello','java','hello','python','hello','go']
print("查询python元素所在的位置:",clst.index('python'))
print("查询hello出现的次数:",clst.count('hello'))
print("像索引3的位置插入一个c++",clst.insert(3,'c++'))
print(clst)
print("向最后的位置插入一个元素php",)
clst.append('php')
print(clst)

dlst = ['xyz','abc']
print("向clst中插入dlst的元素")
clst.extend(dlst)
print(clst)
clst.pop()          # 删除最后一个元素
print(clst)
clst.pop(3)     # 删除第4个元素
print(clst)

clst.reverse()      # 列表元素翻转
print(clst)

clst.sort()
print(clst)

elst = clst.copy()
print(elst)